Ez egy előző félévben kiírt, archivált téma.
A hallgatók feladata a DGEMM (Double-precision General Matrix Multiply), DSYRK (Double-precision Symmetric Rank-k Update), és DSYEV (Double-precision Symmetric Eigenvalue Problem) BLAS/LAPACK rutinok teljesítményének mérése és elemzése különböző processzorokon. A mérési eredményekhez az RDTSC (Read Time-Stamp Counter) és a PMC (Performance Monitoring Counters) eszközöket kell használni. Válasszon ki legalább 4 különböző processzort különböző cache méretekkel (pl. L1, L2, L3 cache méretek eltéréseivel). Telepítse a szükséges fejlesztői eszközöket és könyvtárakat (pl. BLAS, LAPACK, perf eszköz Linux alatt). Ismerkedjen meg az RDTSC és PMC eszközök működésével és használatával. Implementálja az RDTSC alapú időmérést a kiválasztott algoritmusok (DGEMM, DSYRK, DSYEV) köré. Használja a PMC eszközöket a teljesítményprofilozásra, például a cache miss, utasítás végrehajtás és egyéb releváns metrikák mérésére. Végezze el a teljesítményméréseket a kiválasztott algoritmusokon a különböző processzorokon. Minden algoritmust futtasson több különböző mátrixmérettel, hogy a teljesítmény függését a bemeneti adatok méretétől is vizsgálja. Gyűjtsön adatokat mind az RDTSC, mind a PMC eszközökkel, és jegyezze fel az eredményeket. Hasonlítsa össze a különböző processzorokon mért teljesítményadatokat. Elemezze, hogyan befolyásolják a cache méretek és egyéb processzor jellemzők a különböző algoritmusok teljesítményét. Készítsen grafikonokat és táblázatokat az eredmények bemutatására. Készítsen részletes jelentést a feladatról, amely tartalmazza a mérési módszerek, az eredmények és az elemzések leírását. Mutassa be a használt kódokat, a mérések körülményeit és az eredmények értékelését. Tegyen javaslatokat a teljesítmény optimalizálására az egyes algoritmusok és processzorok esetében.
Students are tasked with measuring and analyzing the performance of the DGEMM (Double-precision General Matrix Multiply), DSYRK (Double-precision Symmetric Rank-k Update), and DSYEV (Double-precision Symmetric Eigenvalue Problem) routines from the BLAS/LAPACK libraries on different processors. The measurements should utilize RDTSC (Read Time-Stamp Counter) and PMC (Performance Monitoring Counters) tools. Select at least four different processors with varying cache sizes (e.g., differences in L1, L2, L3 cache sizes). Install the necessary development tools and libraries (e.g., BLAS, LAPACK, perf tool on Linux). Familiarization with RDTSC and PMC: Understand the operation and usage of RDTSC and PMC tools. Implement RDTSC-based timing measurements around the selected algorithms (DGEMM, DSYRK, DSYEV). Use PMC tools for performance profiling, such as measuring cache misses, instruction execution, and other relevant metrics. Performance Measurements: Conduct performance measurements of the selected algorithms on the various processors. Run each algorithm with multiple matrix sizes to examine the performance dependency on input data size. Collect data using both RDTSC and PMC tools, and record the results. Compare the performance data measured on different processors. Analyze how cache sizes and other processor characteristics affect the performance of the various algorithms. Create graphs and tables to present the results.